#pragma once

#include "TypeID.h"
#include "Containers/Map.h"
#include "Misc/CommonMacros.h"

class CGSharpClass;
class CType;

class WHENGINE_API CTypeTable
{
public:
	CTypeTable();

	void AddType(CType* InType,STypeID InTypeID);

	CType* FindType(STypeID InTypeID);

	TVector<CType*> GetAllNativeTypes() const;
	TVector<CType*> GetAllScriptTypes() const;
protected:
	TMap<STypeID,CType*> Types;

	TVector<CType*> NativeTypes;
	TVector<CType*> ScriptTypes;
};
